package com.lsy.poi.cell.indexer;

import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.xssf.usermodel.XSSFCell;

import com.lsy.poi.bean.Index;

/**
 * 行 索引器：
 * 1) 当遇到 非"空行"，才开始数
 * 2) 当遇到 "空行"，则停止
 */
public class BlankSkippingCellIndexer extends CellIndexer {
	
	
	//起始的 index 是从哪里 开始 数
	public BlankSkippingCellIndexer(Index index) {
		super();
		this.index = index;
	}
	
	/**
	 * 判断是否为 空行
	 * 1、null 行：row == null
	 * 2、blank 行：row != null，但是 row 中的 所有 cell 都为 blank
	 * 3、0 cell 行：row != null，但是 row 中 不包含 任何 cell，firstCellNum、lastCellNum 都为 -1
	 */
	@SuppressWarnings("deprecation")
	public boolean isBlank(XSSFCell cell) {
		if(cell == null) {// null 行
			return true;
			
		}else {
			if(cell!=null && cell.getCellType()!=CellType.BLANK.getCode())
				return false;
			
			return true;
		}
	}

	/**
	 * 直到  "非空行" 才算开始
	 */
	public boolean triggerBeginning(XSSFCell cell) {
		
		if(isBlank(cell))
			return false; 
		else 
			return true;
	}

	/**
	 * 遇到 "空行" 则认为 结束
	 */
	@Override
	public boolean triggerEnding(XSSFCell cell) {
		
		if(isBlank(cell)) {
			return true;
		}else {
			return false;
		}
		
	}

}
